<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			*{/*隐藏元素方法*/
				/*visibility: hidden;
				opacity: 0;
				display: none;*/
			}
			/*.left{
				width: 200px;
			}*/
			.web{
				display: flex;
				justify-content: space-between;
			}
			.web div{
				border: 1px solid #000;
			}
		</style>
	</head>
	<body>
		<div class="web">
			<div class="left"></div>
			<div class="right"></div>
		</div>
		<script type="text/javascript">
			
			//有两个不同的对象A、B   他们有各自的方法，各自方法输出的内容不同    问B怎么拿到A的方法
			
			var obj1 = {
				a:function(){
					console.log("aaa")
				}
			}
			var obj2 = {
				b:function(){
					this.a();
				}
			}
			//对象obj2获取对象obj1的a方法
			obj2.b.call(obj1);
			
//			a=1;
//			a = a>>1;
//			console.log(a);
//				4	5	 6	  7     8	 
//			1  -> 2 -> 3 -> 4 -> 5  -> 6+1

			/**
			 * 一个农夫，买了一头小牛，这头小牛成长到第四年开始，会每年生一头小牛，所出生的小牛成长到第四年开始
			 * 也会每年生一头小牛，请问n年后，农夫共有多少头牛，请写代码实现。
			 * 
			 * */

//1	2	3	4	5	6	7	8	9	10	11	12  13	14	15	16	17

//总数	1	2	3	4	6	8	10	13	16	19	23	27	31	36	41

//		  1	  1	  1    2  2   2    3   3   3   4   4  4    5   5
		function test(n){
			var totals = 1;
			if(n>3){
				var s = n%3;
				var m = 0;
				if(n>3&&s==0){
					m = Math.floor(n/3)-1;
				}else{
					m = Math.floor(n/3);
				}
				s = s==0?3:s;
				console.log("m:"+m,"s余数："+s);
				var k = 1;
				if(m>1){
					for(k=1;k<m;k++){
						for(var j=0;j<3;j++){
							totals = totals+k;
						}
					}
				}
				for(var j=0;j<s;j++){
					console.log(totals,k);
					totals = totals + k;
				}
				return totals;
			}else{
				return 1
			}
		}
		console.log(test(11));

//1	1	1	2	3	4	5	6	7	8	9	10	11	12	13	14	15
//(n-2)
//			0	0	0	1	2   3	4	5	6	7	8	9	10	11
//			(n-6)
//						0	0	0	1	2	3	4	5	6	7	8
//						(n-9)
//									0	0	0	1	2	3	4	5
//									(n-12)
//												0	0	0	1	2
//												(n-15)
												
	
			//买牛生小牛
//			function myFun(n){
//				if(n<4){
//					return 1
//				}
//				return myFun(n-4)*2;
//			}
//			console.log(myFun(12))
//			
//			
//			//求n个数的和
//			function add(n){
//		        var x = 1;
//		        var y = 2;
//		        var result = 0;
//		        for(var i=1;i<n;i++) {
//		          result += x/y;
//		          console.log(x+"/"+y)
//		          var z = x+y;
//		          y = z;
//		        }
//		        return result;
//		      }
//			console.log(add(20));
//			
////			var arr = [1,2,3,1,2,3];
////			var newA = Array.from(new Set(arr));
////			var newA = [...new Set(arr)];
////			console.log(newA);
//			
////			var obj = {};
////			Object.defineProperty(obj,"a",{
////				set:function(){
////					console.log("你进行了设置操作setter")
////				},
////				get:function(){
////					return "你调用了我getter"
////				}
////			})
////			console.log(obj.a);
////			obj.a = "789";
//
//			
//			function Fun(name,age){
//				this.name = name;
//				this.age = age;
//			}
//			
//			var fun1 = new Fun();
//			console.log(fun1.__proto__);//实例化对象的原型链指向其构造函数
//			console.log(Fun.prototype);//构造函数的原型对象指向其构造函数
//			console.log(Fun.prototype.constructor);
//			
//			function test111(obj){
//				if(obj.constructor == Array){
//					return "是一个数组"
//				}else if(obj.constructor == Object){
//					return "是一个对象"
//				}
//				return "不是对象也不是数组"
//			}
//			
//			var arr ={};
//			console.log(test111(arr));
//			
//			/**
//			 * 请根据下面规律编写函数
//			 * fun(1).value 		//1
//			 * fun(1)(2).value 		//5
//			 * fun(1)(2)(3).value 	//14
//			 * */
//			
////			var fun = function fun(n){
////				var value = Math.pow(n,2);
////				console.log(value);
////				return function fun1(m){
////					var value = Math.pow(n,2) +　Math.pow(m,2);
////					console.log(value);
////					return function fun2(x){
////						var value = Math.pow(n,2) +　Math.pow(m,2) + Math.pow(x,2);
////						console.log(value);
////					}
////				}
////			}
//			
////			fun(1);
////			fun(1)(2);
////			fun(1)(2)(3);
//			
////			function add(n) {
////			  var fn = function(m) {
////			    return add(n + m);
////			  };
////			  fn.valueOf = function() {
////			    return Math.pow(n,2);
////			  };
////			  fn.toString = function() {
////			    return '' + n;
////			  };
////			  return fn;
////			}
////			console.log(add(1)(2));
//			
//			function fun(i){
//				fun.value = fun.value?fun.value:0;
//				fun.value = fun.value+i*i;
//				return fun;
//			}
//			console.log(fun(1).value);
//			console.log(fun(1)(2).value);
//			console.log(fun(1)(2)(3).value);
//			
//			function Myfun(n){
//				Myfun.value = Math.pow(n,2);
//				return Myfun
//			}
//			console.log(Myfun(1).value);
			
		</script>
	</body>
</html>
